
// int main()
// {
//     char buffer[100];
//     printf("%ld\n", sizeof(*buffer));
//     printf("%ld\n", sizeof(buffer[0]));
//     printf("%ld\n", sizeof(buffer)/sizeof(buffer[0]));
// }

#include <stdio.h>
#include <string.h>

int main() {
    // 2.1 打开/创建文件并写入数据
    FILE *fp = fopen("bite", "w+");  // 读写模式，不存在则创建
    if (!fp) {
        perror("fopen failed");
        return 1;
    }

    // 写入字符串
    const char *data = "linux so easy!";
    size_t len = strlen(data);
    if (fwrite(data, 1, len, fp) != len) {  // 按字节写入
        perror("fwrite failed");
        fclose(fp);
        return 1;
    }

    // 2.2 读取文件内容并打印
    fseek(fp, 0, SEEK_SET);  // 重置文件指针到开头

    char buffer[1024] = {0};
    size_t read_count = fread(buffer, 1, sizeof(buffer)-1, fp);  // 预留'\0'位置
    if (ferror(fp)) {
        perror("fread failed");
        fclose(fp);
        return 1;
    }
    printf("Read count: %zu\n", read_count);
    buffer[read_count] = '\0';  // 确保字符串终止

    printf("File Content: %s\n", buffer);

    // 关闭文件流
    fclose(fp);
    return 0;
}